0x00 前言
跟着“菜鸟学Python”这个我最喜欢的公众号文章做点练习和巩固基本套路
0x01 字符串(string)的使用
- 主要复习了字符串分割,字符串列表按长度排序的方法
text1='A dict that contains arbitrary metadata for this request. ' \ |
- 找单词的长度是5或6,主要复习了列表生成式
list = [x for x in text2 if 6>=len(x)>=5] #利用列表生成式 |
- 统计每个字符串出现的次数,主要复习了Counter类的使用,常用于统计
from collections import Counter #统计每个字符串的出现次数 |
- 字符串的拼接, join()函数和字符串拼接符“+”的运用和对比,建议大型拼接用join()
|
0x02 字典(dict)的使用
- 通过key,value排序,这里需要借助 dict.items() 方法以列表方式返回键值对
|
- 有序字典OrderedDict(),按照插入顺序进行输出
from collections import OrderedDict |
- 字典的取值,建议用get()方法代替传统方法,增加代码健壮性
传统的取值dict[key],当key不是字典dict的键,会引起异常,但get()当key不存在时会返回空,不会导致程序异常
dict = {} |
0x03 Python操作集合的三架马车(filter、map/reduce、sorted)+zip()
- map()/reduce()
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
def f(x): |
reduce()把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
- filter()
和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
def not_empty(s): |
- sorted()
sorted()函数就可以对list进行排序,此外,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序
|
- zip()
zip()是 Python 的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回 list 的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。
l1 = [1, 2, 3, 4] |
0x04 枚举(enumerate) – Python内置函数
常常会在别人的代码中看到它的身影,它允许我们遍历数据并自动计数
my_list = ['apple', 'banana', 'grapes', 'pear'] |